CustomerForm = Ext.extend(Ext.Window, {
	formPanel : null,
	constructor : function(a) {
		Ext.applyIf(this, a);
		this.initUIComponents();
		CustomerForm.superclass.constructor.call(this, {
					layout : "fit",
					id : "CustomerFormWin",
					title : "客户详细信息",
					iconCls : "menu-car_apply",
					width : 600,
					height : 420,
					minWidth : 599,
					minHeight : 400,
					items : this.formPanel,
					maximizable : true,
					border : false,
					modal : true,
					plain : true,
					buttonAlign : "center",
					buttons : this.buttons
				});
	},
	initUIComponents : function() {
		this.formPanel = new Ext.FormPanel({
			url : _ctxPath + "saveCustomer.do",
			layout : "form",
			id : "CustomerForm",
			frame : false,
			border : true,
			defaults : {
				widht : 400,
				anchor : "98%,98%"
			},
			bodyStyle : "padding-top:5px;padding-left:5px;",
			formId : "CustomerFormId",
			defaultType : "textfield",
			reader : new Ext.data.JsonReader({}, [{
								name : 'customer.id',
								mapping : 'id'
							}, {
								name : 'customer.name',
								mapping : 'name'
							}, {
								name : 'customer.linkman',
								mapping : 'linkman'
							}, {
								name : 'customer.sex',
								mapping : 'sex'
							}, {
								name : 'customer.phone',
								mapping : 'phone'
							}, {
								name : 'customer.fax',
								mapping : 'fax'
							}, {
								name : 'customer.postcode',
								mapping : 'postcode'
							}, {
								name : 'customer.email',
								mapping : 'email'
							}, {
								name : 'customer.province',
								mapping : 'province'
							}, {
								name : 'customer.city',
								mapping : 'city'
							}, {
								name : 'customer.area',
								mapping : 'area'
							}, {
								name : 'customer.address',
								mapping : 'address'
							}, {
								name : 'customer.memo',
								mapping : 'memo'
							}]),
			items : [{
						xtype : 'hidden',
						id : 'customer.id',
						name : 'customer.id',
						value : null
					}, {
						xtype : 'textfield',
						allowBlank : false,
						name : 'customer.name',
						fieldLabel : '客户名称',
						msgTarget : 'side',
						anchor : '-20'
					}, {
						xtype : 'textfield',
						name : 'customer.linkman',
						fieldLabel : '联系人',
						msgTarget : 'side',
						anchor : '-20'
					}, {
						fieldLabel : '性别',
						name : "customer.sex",
						width : 70,
						id : "sex",
						xtype : "combo",
						mode : "local",
						editable : false,
						triggerAction : "all",
						store : ["男", "女", "未知"],
						value : "男",
						anchor : '-20'
					}, {
						xtype : 'textfield',
						name : 'customer.phone',
						fieldLabel : '联系电话',
						msgTarget : 'side',
						anchor : '-20'
					}, {
						xtype : 'textfield',
						name : 'customer.fax',
						fieldLabel : '传真',
						msgTarget : 'side',
						anchor : '-20'
					}, {
						xtype : 'textfield',
						name : 'customer.email',
						fieldLabel : '电子邮件',
						msgTarget : 'side',
						anchor : '-20'
					}, {
						xtype : 'textfield',
						name : 'customer.postcode',
						fieldLabel : '邮编',
						msgTarget : 'side',
						anchor : '-20'
					}, {
						xtype : "container",
						layout : "column",
						defaultType : "label",
						items : [{
									text : "所属省:",
									width : 104
								}, {
									name : "customer.province",
									id : "province",
									width : 100,
									xtype : "combo",
									mode : "local",
									editable : false,
									triggerAction : "all",
									store : new Ext.data.JsonStore({
												autoLoad : true,
												url : _ctxPath
														+ "listProvince.do",
												fields : ["provinceid",
														"province"]
											}),
									displayField : "province",
									valueField : "provinceid",
									listeners : {
										select : function(c, a, b) {
											Ext.Ajax.request({
												url : _ctxPath + "listCity.do",
												params : {
													regionid : c.value
												},
												method : "post",
												success : function(e) {
													var d = Ext.util.JSON
															.decode(e.responseText);
													Ext.getCmp("city")
															.getStore()
															.loadData(d);
													Ext.getCmp("city")
															.setValue("请选择");
												}
											});
										}
									}
								}, {
									text : "所属市:",
									width : 80
								}, {
									name : "customer.city",
									id : "city",
									width : 100,
									xtype : "combo",
									mode : "local",
									editable : false,
									triggerAction : "all",
									store : new Ext.data.JsonStore({
												url : _ctxPath + "listArea.do",
												fields : ["cityid", "city"]
											}),
									displayField : "city",
									valueField : "cityid",
									listeners : {
										select : function(c, a, b) {
											Ext.Ajax.request({
												url : _ctxPath + "listArea.do",
												params : {
													regionid : c.value
												},
												method : "post",
												success : function(e) {
													var d = Ext.util.JSON
															.decode(e.responseText);
													Ext.getCmp("area")
															.getStore()
															.loadData(d);
													Ext.getCmp("area")
															.setValue("请选择");
												}
											});
										}
									}
								}, {
									text : "所属区:",
									width : 80
								}, {
									name : "customer.area",
									id : "area",
									width : 80,
									xtype : "combo",
									mode : "local",
									editable : false,
									triggerAction : "all",
									store : new Ext.data.JsonStore({
												fields : ["areaid", "area"]
											}),
									displayField : "area",
									valueField : "areaid"
								}]
					}, {
						xtype : 'textfield',
						name : 'customer.address',
						fieldLabel : '地址',
						msgTarget : 'side',
						anchor : '-20'
					}, {
						xtype : 'textarea',
						name : 'customer.memo',
						fieldLabel : '客户备注',
						msgTarget : 'side',
						anchor : '-20'
					}]
		});
		if (this.id != null && this.id != "undefined") {
			this.formPanel.getForm().load({
						deferredRender : false,
						url : _ctxPath + "viewCustomer.do?customer.id="
								+ this.id,
						waitMsg : "正在载入数据...",
						success : function(b, c) {
						},
						failure : function(a, b) {
							Ext.Msg.alert("编辑", "载入失败");
						}
					});
		}
		this.buttons = [{
			text : "保存",
			iconCls : "btn-save",
			handler : function() {
				var a = Ext.getCmp("CustomerForm");
				if (a.getForm().isValid()) {
					a.getForm().submit({
								method : "post",
								waitMsg : "正在提交数据...",
								success : function(b, c) {
									Ext.Msg.alert("操作信息", "成功保存信息！");
									Ext.getCmp("CustomerGrid").getStore()
											.reload();
									Ext.getCmp("CustomerFormWin").close();
								},
								failure : function(b, c) {
									Ext.MessageBox.show({
												title : "操作信息",
												msg : "信息保存出错，请联系管理员！",
												buttons : Ext.MessageBox.OK,
												icon : "ext-mb-error"
											});
									Ext.getCmp("CustomerFormWin").close();
								}
							});
				}
			}
		}, {
			text : "取消",
			iconCls : "btn-cancel",
			handler : function() {
				Ext.getCmp("CustomerFormWin").close();
			}
		}];
	}
});